package com.gimi.cloud.jimi.manage.service.sys;

import com.gimi.cloud.jimi.commonService.base.BaseService;
import com.gimi.cloud.jimi.dto.params.*;
import com.gimi.cloud.jimi.dto.sys.SysMasterDTO;
import com.gimi.cloud.jimi.dto.sys.SysMenuDTO;

import java.util.List;
import java.util.Map;


/**
 * Created by shazhiwei on 2017/12/14.
 */
public interface MasterService  {
    /** 添加用户 */
    AddMasterParams addMaster(AddMasterParams dto) throws Exception;

    /** 编辑用户 */
    AddMasterParams editMaster(AddMasterParams dto);

    boolean deleteMaster(DeleteMasterParams params);

    /**
     * 根据用户名获取用户
     */
    SysMasterDTO getMaster(LoginParams loginVo);


    List<SysMenuDTO> getMasterMenuList(SysMasterDTO masterDTO);

    List<SysMasterDTO> getMasterList(MasterListParams params);

    /**
     * 根据masterId获取操作用户
     * @param params
     * @return
     */
    SysMasterDTO getMasterSingle(MasterSingleParams params);

    Long getCount(MasterListParams params);

    /**
     * 获取用户权限信息
     * @param sysMasterDTO
     * @param masterId 用户id
     * @return 查询结果  authMenus:授权菜单, permissions:按钮权限  serviceNames 授权服务名
     * @throws Exception
     */
    Map<String,Object> getMasterPermissions(SysMasterDTO sysMasterDTO, Integer masterId) ;

    /**
     * 生成指定Master的登录Token并存储到redis中
     * @param masterDTO 待生成token的管理员信息
     * @return 获取的token信息
     */
    String createTokenAndSet2Redis(SysMasterDTO masterDTO);

    /**
     * 根据主键获取结果
     */
     SysMasterDTO load(SysMasterDTO dto, Integer id);
}
